import sun.security.x509.IPAddressName;

import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStream;

// 构造文件输入流, 读取文件内容
public class IODemo8 {
    public static void main1(String[] args) throws IOException {
        // 相当于打开文件
        // InputStream 是抽象类
        // FileInputStream 构造文件输入流
        try (InputStream inputStream = new FileInputStream("D:/Test_IO/test.txt")) {
            while (true) {
                // read 一次读取一个字节, 但是 read 的返回值是 int
                int b = inputStream.read(); // 读取一个字节的数据，返回 -1 代表已经完全读完了
                if (b == -1) {
                    break;
                }
                System.out.print((char)b);
            }
        }
        // 这个写法会自动关闭字节流
        // inputStream.close();
    }

    public static void main(String[] args){
        try (InputStream inputStream = new FileInputStream("D:/Test_IO/test.txt")) {
            byte[] buf = new byte[1024];
            int len;
            while (true) {
                len = inputStream.read(buf); // 最多读取 b.length 字节的数据到 b 中, 返回实际读到的数量. -1 代表以及读完了
                // 一次读1024个字节
                // 最后一次没读，返回-1
                if (len == -1) {
                    // 代表文件已经全部读完
                    break;
                }
                for (int i = 0; i < len; i++) {
                    System.out.print((char)buf[i]);
                }
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}
